Skip to content

Session installation accepts traversal IDs and loses filenames from other operating systems - #4

Open
dipeshbabu wants to merge 3 commits into
subconscious-systems:mainfrom
dipeshbabu:fix/safe-install-paths
Open

dipeshbabu wants to merge 3 commits into
subconscious-systems:mainfrom
dipeshbabu:fix/safe-install-paths

Conversation

@dipeshbabu

Copy link
Copy Markdown

A session ID such as ../escape is joined directly into harness storage paths, allowing a received trace to write outside the intended directory. metadata.sourcePath also uses the receiver's native basename rules, so Windows filenames are misread on Unix.

Reject unsafe or reserved filename IDs before resolving install paths. Extract original basenames with both path conventions and fall back for nonportable names. Tests cover all harnesses, traversal, control characters, Windows reserved names, and both source path conventions.

Validation: frozen-lockfile dependencies, typecheck, full tests, npm build, and bundled CLI version/help smoke checks. Ubuntu/Windows Node 20/22 CI passed before PR creation on this exact head commit (e285f22): https://github.com/dipeshbabu/vibi-cli/actions/runs/37262968577

This branch includes the CI foundation from #2; merging that PR first removes the common CI changes from this diff.

Closes #3.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Session installation accepts traversal IDs and loses filenames from other operating systems

1 participant